package com.qfjy.controller.example1;


import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * #TODO 1、公司给你的帐户进行解发 发送工资功能。邮件需要收到工资明细。
 * A方法：发送工资业务逻辑。
 * B方法：发送邮件
 */
@Controller
@RequestMapping("account")
@Slf4j
public class AccountController {

    /**
     * #TODO  模版模式
     *    Redis-->RedisTemplate
     *    Http-->RestTemplate
     *    JDBC-->JdbcTemplate
     *    AMQP-->AmqpTemplate  ==RabbitTemplate 等价 （用哪个都行）
     */
    @Autowired
    private AmqpTemplate amqpTemplate;
   // private RabbitTemplate rabbitTemplate;

    @GetMapping("sendWage")
    @ResponseBody
    public String sendWage(HttpServletRequest request){
        /**
         1、公司给你的帐户进行解发 发送工资功能。邮件需要收到工资明细。
         A方法：发送工资业务逻辑。
         B方法：发送邮件
         */

      String cardId= request.getParameter("cardId");
      //发放工资业务逻辑方法 accountService.....sendg......
      log.info("公司给卡号工资发放成功--->{}",cardId);

      // 异步且解藕 发送邮件（工资明细）
        /** String var1, Object var2
         * @param1 消息队列的名称（定义）  String var1,
         * @param2  对象  数据传输具体信息
         */
        amqpTemplate.convertAndSend("emailQueue",cardId);

        return "工资发放成功===>"+cardId;
    }
}
